WinEMU - Der C16/Plus4 Emulator

 

Geschrieben von Zsolt Prievara

 

Version: 0.46R4

Minimale Systemvoraussetzungen:

- Intel Pentium 166MHz Prozessor oder besser (Intel Celeron 300A empfohlen)
- 16MB Hauptspeicher (32MB empfohlen)
- Windows 95/98/NT4+SP4
- DirectX 3.0 oder höher
- DirectX kompatible VGA-Karte

Der Emulator benötigt nicht zwingend eine Soundkarte. Soll allerdings auch Sound emuliert werden, ist eine DirectX kompatible Soundkarte notwendig.

WinEMU besteht aus zwei separaten Programmen: WinEMUSetup und WinEMU. Mit dem ersten Programm können alle für den Betrieb des Emulators notwendigen Einstellungen vorgenommen werden. Das zweite Programm ist der Emulator selbst. Vor dem ersten Programmstart wird empfohlen das Setup-Programm aufzurufen. Alle für den Betrieb benötigten Informationen werden hierbei in der Windows-Registry abgespeichert.

WinEMUSetup

Folgende Parameter können verändert werden:

- Bildschirmauflösung (320x200, 320x240, 400x300, 512x384) - (Screen resolution),
- ModeX Unterstützung für Notebook Computer,
- Sound Emulation (Sound emulation),
- Nach dem Programmstart direkt in den Debugger-Modus springen (Debug),
- Prozeß Priorität (Process priority),
- Festlegung der Standard-Synchronisation (Default synchronization),
- Log-Datei (Create log files),
- Benutzung der eingebauten Plus4 ROMs (Plus4 ROMs).

Screen resolution: Die Auflösung 320x200 ist die schnellste und arbeitet sehr zuverlässig auf jedem Computer. 400x300 ist die beste Auflösung. Sie hat einen sehr hohen Authentizitätsgrad aufgrund der Darstellung des kompletten Randes. Leider unterstützen nicht alle Grafikkarten diesen Modus. Die letzte verfügbare Auflösung (512x384) ist nur für Computer gedacht bei denen die Initialisierung des 400x300er Bildschirmmodus fehlschlägt. Könnte sein das dann 512x384 funktioniert. Am besten einfach mal ausprobieren.

ModeX: Bleibt der Bildschirm nach dem Start des Emulators dunkel wird empfohlen diese Option zu aktivieren. In diesem Fall, der vor allem bei Notebooks auftritt,  kann der DirectX-Treiber nicht korrekt initialisiert werden. Die Aktivierung dieser Option sollte Abhilfe schaffen.

Sound emulation: Ist im System keine DirectX kompatible Soundkarte vorhanden wird empfohlen auch die Sound-Emulation abzuschalten. Die dafür zuständigen Routinen werden dann während der Laufzeit des Emulators komplett übersprungen.

Debug: Soll der Startvorgang des emulierten Computers genauer untersucht werden, kann die 'Start in debugger'-Option aktiviert werden. Nach dem Start des Emulators wird dann sofort in den Debugger-Modus gesprungen.

Process priority: Die Einstellung der Prozeßpriorität sollte im Normalfall immer auf der Einstellung 'Normal' stehen bleiben. Wird eine höhere Priorität gewählt kann es zum Stillstand anderer laufender Programme kommen!

Default synchronization: Soll die Einstellung der Synchronisation nicht im Emulator selbst vorgenommen werden, kann dies auch im Setup-Programm geschehen.

Außerdem läßt sich die Standard Joystick-Emulation einstellen.

Plus4 ROMs: Die Plus4 ROM-Dateien (3plus1lo.rom und 3plus1hi.rom) können optional beim Start des Emulators mitgeladen werden.

WinEMU

Dies ist der eigentliche Emulator. Nach dem Start wird das DirectX System initialisiert. Treten hierbei keine Fehler auf erscheint nach kurzer Zeit der C16/Plus4-Bildschirm auf dem Monitor.

Tastaturbelegung im Emulator:

TAB

Run/Stop Taste

Alt

Commodore Taste

Home

Clear/Home Taste

F6

Speichert den aktuellen Bildschirminhalt als BMP-Datei OUTPUT.BMP

F7

Optionen

F8

Menü Laden

Shift F8

Menü Speichern

F9

Debugger

Shift F9

Schnellübersicht Register

F11

Warmstart

Shift F11

Kaltstart

F12

Beenden

Optionen

J - Einstellung der Joystick Emulation

Tastenbelegung der Joystick-Emulation: Pfeiltasten und rechte [Strg]-Taste für den Feuerknopf

S - Festlegung der Synchronisationmethode:

None - Keine Synchronisation. Die beste Einstellung für langsame Computer.
Vertical Blank - Synchronisation auf den Elektronenstrahl, beste Ergebnisse beim Scrolling (Emulation läuft allerdings schneller als ein Original C16/Plus4)
50Hz Timer - Diese Option bringt optimale Performance

O - An- bzw. Ausschalten des Sounds (wenn Sound-Emulation im Setup eingeschaltet ist)

Menü Laden

Mit den Pfeiltasten Links und Rechts kann das Quellmedium ausgewählt werden: program (*.prg), snapshot (*.fre), tape (*.t64) oder disk (*.d64). Zur Zeit werden nur die Typen program und snapshot unterstützt. Die anderen Formate werden später hinzukommen. Mit den Pfeiltasten Oben und Unten kann auf die gewünschte Datei gesprungen werden. Durch betätigen der Eingabe-Taste wird die ausgewählte Datei in den Speicher geladen.

Menü Speichern

Der Speicherinhalt kann entweder in eine *.prg oder in eine *.fre Datei abgespeichert werden. Ein Dateiname und außerdem die Angabe eines Speicherbereiches sind hierfür notwendig. Die abgespeicherten *.fre Dateien sind kompatibel mit dem Minus4-Format.

Debugger

Der Debugger besteht aus vier Teilen:
- Disassembler (F1)
- Memory Dump (F2)
- TED-Register (F3)
- CPU-Register (F4)

Mit dem Betätigen der ESC-Taste wird der Debugger verlassen und die Emulation fortgeführt.

Schnellübersicht Register

Anzeige der momentanen Registerinhalte.

Disassembler

Der Disassembler disassembliert den Speicherinhalt beginnend vom momentanen PC-Register (Program Counter). Die Navigation erfolgt mit den Pfeiltasten Oben und Unten. Ganze Seiten lassen sich mit den Tasten Bild-Hoch und Bild-Runter überspringen.

Zusätzliche Tastaturbelegung:

F2 - Speicherauszug (Memory Dump)
F3 - TED-Register
F4 - CPU-Register
F5 - Sprung zu der angegebenen Adresse (keine Änderung des PC-Registers!)
F6 - Setzen einer Unterbrechung (BreakPoint)
F7 - Aufruf JSR (Step Over) oder normale Ausführung
F8 - Normale Ausführung (Step In)
B - Unterbrechungen (BreakPoints) An/Aus
Shift F8 - Quick Run (für Long Cycles)
TAB - Wechsel zur nächsten Seite bei Speicherauszug (Memory Dump)

Speicherauszug (Memory Dump)

In diesem Teil des Programms wird der Speicherinhalt im Hexadezimal- und im Character-Format angezeigt. Die Navigation erfolgt wie gewohnt mit den Pfeiltasten Oben und Unten. Ganze Seiten lassen sich wieder mit den Tasten Bild-Hoch und Bild-Runter überspringen. Der Speicherauszug startet beim momentanen Wert des PC. Durch Betätigen der L-Taste wird die aktuelle Speicherauszugsadresse gesichert. Spätere Speicherauszüge starten dann wieder an dieser Adresse. Mit der T-Taste erfolgt ein Sprung zum TED-Registerbereich. Durch Betätigen der TAB-Taste gelangt man dann auf die TED-Registerseite.

Weitere Tastenbelegungen:

F1 - Disassembler
F3 - TED-Register
F4 - CPU-Register

TED-Register

Auf dieser Seite werden die TED-Register in einem übersichtlicheren Format dargestellt. Durch betätigen der TAB-Taste gelangt man auf die CPU-Register Seite.

Weitere Tastenbelegungen:

F1 - Disassembler
F2 - Speicherauszug (Memory Dump)
F4 - CPU-Register

CPU-Register

Nur die CPU-Register sind sichtbar und können auch modifiziert werden. Wenn beispielsweise ein Programm von einer anderen Startadresse gestartet werden soll kann sehr einfach der Inhalt des PC modifiziert werden.

Zum Schluß...

möchte ich mich besonders bei Tibor Biczó, Mike Dailly und Róbert Cseh für die äußerst nützliche technische Hilfe bedanken. Außerdem bei den folgenden Leuten:

Zsombor Bolyóczki,
Tamás Nagy,
Stephan Süberkrüb,
Ben Wise,
Péter Gyukity,
Linus Åkerlund,
Andrzej Pawlowski,
und allen anderen die mir Ihre Erfahrungen mitgeteilt und Ihre Ideen zum Projekt beigetragen haben.

Du magst WinEMU oder Du hast vielleicht einen CPU-Bug gefunden? Dann schreib doch einfach an eine der folgenden Adressen eine Email:

 

zsolt@emuunlim.com

oder

zsolt@szentes.hu

 

(Deutsche Übersetzung der Dokumentation: Stephan Süberkrüb, V120699b)